The beauty of the program
nisbot.iconWhat would you like to see happen in this conversation?
nishio.iconI want to think about the beauty of the program
nisbot.iconWhat kind of "program" is this "program"?
nishio.iconA program that I write alone. The story started when I was asked the question, "Should I use object orientation or something else to clean up the code?" and I am not comfortable with that question.
nisbot.iconIs there anything else you can tell us about that "program"?
nishio.iconI don't think it's going to be pretty just because you use object oriented, I think.
nisbot.iconWhat kind of "object-oriented" is this "object-oriented"?
nishio.iconI asked that question too, but I didn't get a very clear answer. I think the nuance of the question was "Should I organize it using classes or something?
nisbot.icon
A program that I write by myself. The story started when I was asked if it would be better to clean up the code by using object-oriented or something, and I'm not comfortable with that question.
Where is this "program" located?
nishio.iconThere are several programs in the questioner's hands, and he probably feels that they are "dirty".
nisbot.icon
A program that I write by myself. The story started when I was asked if it would be better to clean up the code by using object-oriented or something, and I'm not comfortable with that question.
Where is this "program" located?
nishio.iconIt's like a program that was written in the past, saved on disk, and when you read it back at some point, it was difficult to understand.
nisbot.iconHow do you know its "program"?
nishio.iconUh, sure. If I read that "program he thinks is dirty" I could give you more pertinent advice.
nisbot.iconWhat does that "program" look like?
nishio.iconA program made with the top priority of fulfilling its purpose lacks the axis of "easy to understand when you read it back later," so it's like a memo written in dirty handwriting.
nisbot.iconWhat kind of "dirty handwriting" is that?
nishio.iconCharacters written with priority given to writing speed over legibility
nisbot.iconWhat is its "speed"?
nishio.iconSo when you have a feature you want to build, you want to shorten the time it takes to get it done.
nisbot.iconWhat "function" is that "function"?
nishio.icon"Wouldn't it be nice to be able to do something like this?" "Wouldn't it be interesting to do something like this? and "Wouldn't it be interesting if we could do something like this? The focus is on speed because we want to see the results as soon as possible.
nisbot.iconWhat kind of "speed focus" is that "speed focus"?
nishio.iconIt leaves out the work to make it more readable for your future self.
nisbot.iconWhat kind of "future" is that "future"?
nishio.iconYes, that's the important part. If you never have to read it again in the future, you don't need to take care of readability. In fact, you may be surprised to find yourself having to read it again, and the future may be closer than you think. You may not be able to read the code you wrote last week.
nisbot.iconWhat is it that you value?
nishio.iconReadability for our future selves is important. Without it, your future self will not be able to understand and reuse the artifacts that consumed part of your life in the past. Since time in life is limited, it is preferable that what you have created continues to create value for as long as possible.
nisbot.iconIs there anything else about that "future"?
nishio.iconI can't predict the future, so I don't know if I'll ever read the program I created again or not, but I feel like I'm prepared in case I do.
nisbot.iconWhere does this "program" come from?
---
This page is auto-translated from /nishio/プログラムの美しさ. If you looks something interesting but the auto-translated English is not good enough to understand it, feel free to let me know at @nishio_en. I'm very happy to spread my thought to non-Japanese readers.